package dbmig.model;


import org.jetbrains.annotations.NotNull;



/**
 * Represents the RDBMS context.
 *
 * This class is responsible for RDBMS-specific metadata functions like name converting, etc.
 */
public abstract class AbstractContext
{

    /**
     * Converts logical name to catalog name.
     * @param name  logical name.
     * @return      catalog name.
     */
    @NotNull
    public abstract String convertLogicNameToCatalog(final @NotNull String name);

    /**
     * Converts catalog name to logical name.
     * @param name  catalog name.
     * @return      logical name.
     */
    @NotNull
    public abstract String convertCatalogNameToLogic(final @NotNull String name);

    /**
     * Converts logical name to script name.
     * @param name  logical name.
     * @return      script name.
     */
    @NotNull
    public abstract String convertLogicNameToScript(final @NotNull String name);

}
